import request from '../utils/request'

/**
 * 待办事项相关API接口
 */

/**
 * 创建待办事项
 * @param {Object} data - 待办事项数据，包含title、description、dueDate、dueTime、priority等
 * @returns {Promise} 返回创建的待办事项信息
 */
export const createTodo = (data) => {
  return request.post('/api/todo', data)
}

/**
 * 更新待办事项
 * @param {Object} data - 更新的待办事项数据，包含id和要更新的字段
 * @returns {Promise} 返回更新后的待办事项信息
 */
export const updateTodo = (data) => {
  return request.put('/api/todo', data)
}

/**
 * 删除待办事项
 * @param {number} id - 待办事项ID
 * @returns {Promise} 返回删除结果
 */
export const deleteTodo = (id) => {
  return request.delete(`/api/todo/${id}`)
}

/**
 * 完成待办事项
 * @param {number} id - 待办事项ID
 * @returns {Promise} 返回完成结果
 */
export const completeTodo = (id) => {
  return request.put(`/api/todo/${id}/complete`)
}

/**
 * 获取待办事项列表
 * @param {number|null} status - 状态筛选：0-待完成，1-已完成，null-全部
 * @returns {Promise} 返回待办事项列表
 */
export const getTodoList = (status = null) => {
  return request.get('/api/todo', {
    params: { status }
  })
}

/**
 * 根据日期获取待办事项
 * @param {string} date - 日期字符串，格式：YYYY-MM-DD
 * @returns {Promise} 返回指定日期的待办事项列表
 */
export const getTodosByDate = (date) => {
  return request.get(`/api/todo/date/${date}`)
}

/**
 * 获取待办事项统计信息
 * @returns {Promise} 返回统计数据，包含总数、已完成数、待完成数等
 */
export const getTodoStatistics = () => {
  return request.get('/api/todo/statistics')
}

/**
 * 获取按日期分组的待办事项
 * @returns {Promise} 返回今天、明天、后天的待办事项分组数据
 */
export const getTodosGroupByDate = () => {
  return request.get('/api/todo/grouped')
} 